/***********************************************************************************************************************
* Copyright (C) . All rights reserved.
***********************************************************************************************************************/

/***********************************************************************************************************************
* File Name    : main.c
* Version      :  
* Device(s)    : BAT32G157
* Tool-Chain   : MDK(armcc)
* Description  : This file is a template.
* Creation Date: 2019/12/25
***********************************************************************************************************************/

/***********************************************************************************************************************
Macro Definitions
***********************************************************************************************************************/

/***********************************************************************************************************************
Includes
***********************************************************************************************************************/
#include "BAT32G157.h"
#include "userdefine.h"
#include "rtc.h"

/***********************************************************************************************************************
Global variables and functions
***********************************************************************************************************************/
volatile uint32_t g_ticks;

void delayMS(uint32_t n)
{
		g_ticks = n;
		while(g_ticks);
}

int main()
{
	uint32_t msCnt; 	// count value of 1ms
	
//-----------------------------------------------------------------------
// Vector Table in SRAM region
//-----------------------------------------------------------------------
#if 1
	__disable_irq();
	SCB->VTOR = 0x20000400;
	__DMB();	
	__enable_irq();
#endif
	
//-----------------------------------------------------------------------
// 15bits IntervalTimer (Operation Clock: fIL)
//-----------------------------------------------------------------------
	PORT->PMCD &= ~(3<<2);
	PORT->PD   = 0x02U;
	PORT->PMD &= ~(3<<2);
	IT_Init(RTC_FIL, 3750);
	IT_Start();

	while(1)
	{	
		__WFI();  	/* Sleep */
		PORT->PD ^= 3<<2; 	// Toggle PD02, PD03
	}
	
	IT_Stop();

}
/***********************************************************************************************************************
* Function Name: SysTick Handler
* Description  : Decreament the g_ticks value
* Arguments    : None
* Return Value : None
***********************************************************************************************************************/
void SysTick_Handler(void)
{
	g_ticks--;
}


